package san.java.day11;

import org.omg.PortableInterceptor.INACTIVE;

/**
 * 泛型类:
 *  1. 对象实例化时不指定泛型,默认为Object
 *  2. 泛型不同的引用不能相互赋值
 */

public class GenericsClass_02 {
    public static void main(String[] args) {
        A<Integer> a1 = new A<Integer>();  // new A时指定泛型T为Integer
        a1.setKey(1);
        int k = a1.getKey();

        // 不指定时就是Object
    }
}

/**
 * 此处的泛型T可以任意取名,但是一般用T表示泛型参数
 * 一般使用T, type
 *
 * @param <T>
 */
class A<T> {
    private T key;

    public void setKey(T key) {
        this.key = key;
    }

    public T getKey() {
        return this.key;
    }
}
